package com.datatraffic.salesup.model;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public class Form {
	private String nombre, apellido, tipo_documento, documento,
			numero_telefonico_1, numero_telefonico_2, numero_celular_1,
			numero_celular_2, operador_actual_de_television,producto_interes,covertura,
			fecha_y_hora_proximo_contacto, tipo_de_contacto_a_realizar,
			mensaje_proximo_contacto, observaciones, estado, fecha_de_registro;
	private long local_id, last_version_id, server_id;
	private int sent;
	private double latitude, longitude;
	private int user;
	private String date_time;
	private int speed;
	private int heading;
	private int precision;
	private String email;
	private String direccion;
	private String firma;
	private String acepta;

	public Form(long local_id, double latitude, double longitude, String nombre,
			String apellido, String tipo_documento, String documento,
			String numero_telefonico_1, String numero_telefonico_2,
			String numero_celular_1, String numero_celular_2,
			String operador_actual_de_television, String producto_interes,String covertura, 
			String fecha_y_hora_proximo_contacto,
			String tipo_de_contacto_a_realizar,
			String mensaje_proximo_contacto, String observaciones,
			String estado, String fecha_de_registro, long last_version_id,
			int sent,
			long server_id,
			String email,
			String direccion,
			String firma,boolean checked,String acepta) {
		super();
		this.local_id = local_id;
		this.latitude = latitude;
		this.longitude = longitude;
		this.nombre = nombre;
		this.apellido = apellido;
		this.tipo_documento = tipo_documento;
		this.documento = documento;
		this.numero_telefonico_1 = numero_telefonico_1;
		this.numero_telefonico_2 = numero_telefonico_2;
		this.numero_celular_1 = numero_celular_1;
		this.numero_celular_2 = numero_celular_2;
		this.operador_actual_de_television = operador_actual_de_television;
		this.producto_interes = producto_interes;
		this.covertura = covertura;
		this.fecha_y_hora_proximo_contacto = fecha_y_hora_proximo_contacto;
		this.tipo_de_contacto_a_realizar = tipo_de_contacto_a_realizar;
		this.mensaje_proximo_contacto = mensaje_proximo_contacto;
		this.observaciones = observaciones;
		this.estado = estado;
		this.fecha_de_registro = fecha_de_registro;
		this.last_version_id = last_version_id;
		this.sent = sent;
		this.setServer_id(server_id);
		this.email=email;
		this.direccion=direccion;
		this.firma=firma;
		this.acepta=acepta;
	}

	public Form(Form form) {
		super();
		this.local_id = form.getLocal_id();
		this.latitude = form.getLatitude();
		this.longitude = form.getLongitude();
		this.nombre = form.getNombre();
		this.apellido = form.getApellido();
		this.tipo_documento = form.getTipo_documento();
		this.documento = form.getDocumento();
		this.numero_telefonico_1 = form.getNumero_telefonico_1();
		this.numero_telefonico_2 = form.getNumero_telefonico_2();
		this.numero_celular_1 = form.getNumero_celular_1();
		this.numero_celular_2 = form.getNumero_celular_2();
		this.operador_actual_de_television = form
				.getOperador_actual_de_television();
		this.producto_interes = form.getProducto_interes();
		this.covertura = form.getCovertura();
		this.fecha_y_hora_proximo_contacto = form
				.getFecha_y_hora_proximo_contacto();	
		this.tipo_de_contacto_a_realizar = form
				.getTipo_de_contacto_a_realizar();
		this.mensaje_proximo_contacto = form.getMensaje_proximo_contacto();
		this.observaciones = form.getObservaciones();
		this.estado = form.getEstado();
		this.fecha_de_registro = form.getFecha_de_registro();
		this.last_version_id = form.getLast_version_id();
		this.sent = form.getSent();
		this.setServer_id(form.getServer_id());
		this.email=form.getEmail();
		this.direccion=form.getDireccion();
		this.firma=form.getFirma();
		this.acepta=form.getAcepta();
	}

	public Form() {
		
	}

	public Form(JSONObject encuesta) {
		if(encuesta.has("local_id"))
		{
			this.local_id = encuesta.optLong("local_id");
		}
		else
		{
			this.local_id = -1;
		}
		
		this.nombre = encuesta.optString("names");
		this.apellido = encuesta.optString("surnames");
		this.tipo_documento = encuesta.optString("type_id");
		this.documento = encuesta.optString("prospect_id");
		this.numero_telefonico_1 = encuesta.optString("telephone1");
		this.numero_telefonico_2 = encuesta.optString("telephone2");
		this.numero_celular_1 = encuesta.optString("celular1");
		this.numero_celular_2 = encuesta.optString("celular2");
		this.operador_actual_de_television = encuesta.optString("operator");
		this.producto_interes = encuesta.optString("producto_interes");
		this.covertura = encuesta.optString("cobertura");
		this.fecha_y_hora_proximo_contacto = encuesta.optString("next_contact");
		this.fecha_de_registro=encuesta.optString("register_date");
		this.tipo_de_contacto_a_realizar = encuesta.optString("type_contact");
		this.mensaje_proximo_contacto = encuesta.optString("msg_contact");
		this.observaciones = encuesta.optString("observations");
		this.estado = encuesta.optString("status");
		this.email = encuesta.optString("email");
		this.direccion = encuesta.optString("direccion");
		this.firma = encuesta.optString("firma");
		
		if(encuesta.has("local_id"))
		{
			this.user = encuesta.optInt("user");
		}
		else
		{
			this.user = -1;
		}
		
		if(encuesta.has("date_time"))
		{
			this.date_time = encuesta.optString("date_time");
		}
		else
		{
			this.date_time = "";
		}		
		
		if(encuesta.has("latitude"))
		{
			this.latitude = encuesta.optDouble("latitude");
		}
		else
		{
			this.latitude = -1;
		}
		
		if(encuesta.has("longitude"))
		{
			this.longitude = encuesta.optDouble("longitude");
		}
		else
		{
			this.longitude = -1;
		}		
		
		if(encuesta.has("speed"))
		{
			this.speed = encuesta.optInt("speed");
		}
		else
		{
			this.speed = -1;
		}
		
		if(encuesta.has("heading"))
		{
			this.heading = encuesta.optInt("heading");
		}
		else
		{
			this.heading = -1;
		}
		
		if(encuesta.has("precision"))
		{
			this.precision = encuesta.optInt("precision");
		}
		else
		{
			this.precision = -1;
		}
		
		if(encuesta.has("last_version_id"))
		{
			this.last_version_id = encuesta.optInt("last_version_id");
		}
		else
		{
			this.last_version_id = -1;
		}
		
		if(encuesta.has("server_id"))
		{
			this.server_id = encuesta.optInt("server_id");
		}
		else
		{
			this.server_id = -1;
		}
		
		if(encuesta.has("sent"))
		{
			this.sent = encuesta.optInt("sent");
		}
		else
		{
			this.sent = -1;
		}
		
		this.firma = encuesta.optString("firma");
		
		if(encuesta.has("agree"))
		{
			this.acepta = encuesta.optString("agree");
		}
		else
		{
			this.acepta = "false";
		}
	}
	

	public JSONObject toJSON() throws JSONException {
		JSONObject resultado = new JSONObject();
		JSONArray array = new JSONArray();
		JSONObject item = new JSONObject();
		
		//if(this.local_id > 0)
			item.put("local_id", this.local_id);
		
		item.put("names", this.nombre);
		item.put("surnames", this.apellido);
		item.put("type_id", this.tipo_documento);
		item.put("prospect_id", this.documento);
		item.put("telephone1", this.numero_telefonico_1);
		item.put("telephone2", this.numero_telefonico_2);
		item.put("celular1", this.numero_celular_1);
		item.put("celular2", this.numero_celular_2);
		item.put("operator", this.operador_actual_de_television);
		item.put("product", this.producto_interes);
		item.put("coverage",this.covertura);
		item.put("next_contact", this.fecha_y_hora_proximo_contacto);
		item.put("register_date", this.fecha_de_registro);
		item.put("type_contact", this.tipo_de_contacto_a_realizar);
		item.put("msg_contact", this.mensaje_proximo_contacto);
		item.put("observations", this.observaciones);
		item.put("status", this.estado);
		item.put("email", this.estado);
		item.put("address", this.estado);
		
		if(this.user > 0)
			item.put("user", this.user);
		if(this.date_time.length() > 0)
			item.put("date_time", this.date_time);		
		
		if(this.latitude > 0)
			item.put("latitude", this.latitude);
		if(this.latitude > 0)
			item.put("longitude", this.longitude);
		if(this.speed > 0)
			item.put("speed", this.speed);
		if(this.heading > 0)
			item.put("heading", this.heading);
		if(this.precision > 0)
			item.put("precision", this.precision);		
		if(this.last_version_id > 0)
			item.put("last_version_id", this.last_version_id);
		if(this.server_id > 0)
			item.put("server_id", this.server_id);
		if(this.sent > 0)
			item.put("sent", this.sent);		
		
		item.put("agree", this.acepta);
		array.put(item);
		
		resultado.put("data", array);
		
		return resultado;
	}	

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getApellido() {
		return apellido;
	}

	public void setApellido(String apellido) {
		this.apellido = apellido;
	}

	public String getTipo_documento() {
		return tipo_documento;
	}

	public void setTipo_documento(String tipo_documento) {
		this.tipo_documento = tipo_documento;
	}

	public String getDocumento() {
		return documento;
	}

	public void setDocumento(String documento) {
		this.documento = documento;
	}

	public String getNumero_telefonico_1() {
		return numero_telefonico_1;
	}

	public void setNumero_telefonico_1(String numero_telefonico_1) {
		this.numero_telefonico_1 = numero_telefonico_1;
	}

	public String getNumero_telefonico_2() {
		return numero_telefonico_2;
	}

	public void setNumero_telefonico_2(String numero_telefonico_2) {
		this.numero_telefonico_2 = numero_telefonico_2;
	}

	public String getNumero_celular_1() {
		return numero_celular_1;
	}

	public void setNumero_celular_1(String numero_celular_1) {
		this.numero_celular_1 = numero_celular_1;
	}

	public String getNumero_celular_2() {
		return numero_celular_2;
	}

	public void setNumero_celular_2(String numero_celular_2) {
		this.numero_celular_2 = numero_celular_2;
	}

	public String getOperador_actual_de_television() {
		return operador_actual_de_television;
	}

	public void setOperador_actual_de_television(
			String operador_actual_de_television) {
		this.operador_actual_de_television = operador_actual_de_television;
	}
	
	public String getProducto_interes() {
		return producto_interes;
	}
	
	public void set_producto_interes(
			String producto_interes) {
		this.producto_interes = producto_interes;
	}
	
	public String getCovertura() {
		return covertura;
	}
	
	public void SetCovertura(
			String covertura) {
		this.covertura = covertura;
	}

	public String getFecha_y_hora_proximo_contacto() {
		return fecha_y_hora_proximo_contacto;
	}

	public void setFecha_y_hora_proximo_contacto(
			String fecha_y_hora_proximo_contacto) {
		this.fecha_y_hora_proximo_contacto = fecha_y_hora_proximo_contacto;
	}

	public String getTipo_de_contacto_a_realizar() {
		return tipo_de_contacto_a_realizar;
	}

	public void setTipo_de_contacto_a_realizar(
			String tipo_de_contacto_a_realizar) {
		this.tipo_de_contacto_a_realizar = tipo_de_contacto_a_realizar;
	}

	public String getMensaje_proximo_contacto() {
		return mensaje_proximo_contacto;
	}

	public void setMensaje_proximo_contacto(String mensaje_proximo_contacto) {
		this.mensaje_proximo_contacto = mensaje_proximo_contacto;
	}

	public String getObservaciones() {
		return observaciones;
	}

	public void setObservaciones(String observaciones) {
		this.observaciones = observaciones;
	}

	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public String getFecha_de_registro() {
		return fecha_de_registro;
	}

	public void setFecha_de_registro(String fecha_de_registro) {
		this.fecha_de_registro = fecha_de_registro;
	}

	public int getSent() {
		return sent;
	}

	public void setSent(int sent) {
		this.sent = sent;
	}

	public long getLocal_id() {
		return local_id;
	}

	public void setLocal_id(long local_id) {
		this.local_id = local_id;
	}

	public long getLast_version_id() {
		return last_version_id;
	}

	public void setLast_version_id(long last_version_id) {
		this.last_version_id = last_version_id;
	}

	public double getLatitude() {
		return latitude;
	}

	public void setLatitude(double latitude) {
		this.latitude = latitude;
	}

	public double getLongitude() {
		return longitude;
	}

	public void setLongitude(double longitude) {
		this.longitude = longitude;
	}

	public long getServer_id() {
		return server_id;
	}

	public void setServer_id(long server_id) {
		this.server_id = server_id;
	}
	
	public int getUser() {
		return user;
	}

	public void setUser(int user) {
		this.user = user;
	}

	public String getDate_time() {
		return date_time;
	}

	public void setDate_time(String date_time) {
		this.date_time = date_time;
	}

	public int getSpeed() {
		return speed;
	}

	public void setSpeed(int speed) {
		this.speed = speed;
	}

	public int getHeading() {
		return heading;
	}

	public void setHeading(int heading) {
		this.heading = heading;
	}

	public int getPrecision() {
		return precision;
	}

	public void setPrecision(int precision) {
		this.precision = precision;
	}
	
	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getDireccion() {
		return direccion;
	}

	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}

	public String getFirma() {
		return firma;
	}

	public void setFirma(String firma) {
		this.firma = firma;
	}

	public String getAcepta() {
		return acepta;
	}

	public void setAcepta(String acepta) {
		this.acepta = acepta;
	}
	
	
}
